package com.cykj.admin.mapper;

import com.cykj.admin.vo.MenuVO;
import com.cykj.common.entity.AdminDO;
import com.cykj.common.entity.MenuDO;
import com.cykj.common.entity.RoleDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.awt.*;
import java.util.List;

/**
 * @BelongsProject: smart_recruit_backend
 * @BelongsPackage: com.cykj.admin.mapper
 * @Author: 小小卢
 * @CreateTime: 2025-08-20 09:39
 * @Description: TODO
 */
@Mapper
public interface MenuMapper {

    /**
     * @Description: 查询菜单
     * @Param: []
     * @return: java.util.List<com.cykj.entity.DynamicMenuDO>
     */
    List<MenuDO> selectMenuByAdmin(@Param("menuVO") MenuVO menuVO);

    /**
    * @Description: 新增菜单
    * @Param: [menuVO]
    * @return: java.lang.Integer
    */
    Integer addMenu(@Param("menuVO") MenuVO menuVO);

    /**
    * @Description: 修改菜单
    * @Param: [menuVO]
    * @return: java.lang.Integer
    */
    Integer updateMenu(@Param("menuVO") MenuVO menuVO);

    /**
    * @Description: 通过角色id获取角色对应菜单
    * @Param: [roleId]
    * @return: java.util.List<com.cykj.common.entity.MenuDO>
    */
    List<MenuDO> getMenuById(@Param("roleId")Integer roleId);

    /**
    * @Description: 获取所有的角色
    * @Param: []
    * @return: java.util.List<com.cykj.common.entity.MenuDO>
    */
    List<RoleDO> getAllRole();

    /**
    * @Description: 获取所有菜单
    * @Param: []
    * @return: java.util.List<com.cykj.common.entity.MenuDO>
    */
    List<MenuDO> getAllMenu();

    /**
    * @Description: 删除角色拥有的权限
    * @Param: [roleId]
    * @return: java.lang.Integer
    */
    Integer deletePerMenu(@Param("roleId") Integer roleId);

    /**
    * @Description: 添加角色已有的权限
    * @Param: [menuDOS]
    * @return: java.lang.Integer
    */
    Integer changePerMenu(@Param("roleId")Integer roleId,
                          @Param("menuDOS")List<MenuDO> menuDOS);

}
